#-*- codeing = utf-8 -*-
#@Time : 2020/8/9 14:42
#@Author : 阳某
#@File : selenium网页窗口操作.py
#@Software : PyCharm
from selenium import webdriver
#打开浏览器
driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")
#输入网址
driver.get("http://wenku.baidu.com")
#向后退
driver.back()
#向前进
driver.forward()
#刷新页面
driver.refresh()
#设置超时等待的时间，超过不再等待
driver.set_page_load_timeout(2)

#捕获超时异常
try:
   driver.get("http://www.sohu.com")
except Exception as e:
    print(e)

#窗口最大化
driver.maximize_window()
#获取坐标位置{'y': -8, 'x': 1672}
driver.get_window_position()
#判断使用的浏览器u'internet explorer'
driver.name
#设置浏览器坐标
driver.set_window_position(y=200, x=400)
#y:指的上下走，屏幕最顶部y=0 ；x：指的左右走 ，最左边x=0，不再当前屏幕的会出现负数
#浏览器最大化的状态再去设置坐标就不起作用了

driver.get_window_position()['x'] #获取x轴的位置
driver.get_window_position()['y'] #获取y轴的位置

#获取浏览器的窗体大小{'width': 160, 'height': 32}
driver.get_window_size()
#获取浏览器的宽度
driver.get_window_size()['width']
#获取浏览器的高度
driver.get_window_size()['height']
#设置浏览器的窗体大小
driver.set_window_size(100,200)

# print(driver.title） #获取页面title，可以用于做断言看打开的页面对不对搜狐)

assert u"搜狐" == driver.title  #断言标题是否正确
assert u"搜狐2" == driver.title #断言标题出错
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# AssertionError

driver.page_source() #获取网页源码，返回的其实是unicode字符串

#抓取页面源码时，webdriver可以触犯页面上的js动态数据，但是它的缺点是比较慢；之前讲过的

#request抓取源码快，但只适用于静态页面，无法抓取js的动态页面内容
#抓取源码是非常重要的，可以随意操作
driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")
driver.get("http://www.iciba.com")
driver.page_source[:50] #获取第50行的页面源码
u'<html><head><style></style><avalon class="avalonHi'
u"热门词汇" in driver.page_source #判断指定字段是不是在页面源码中存在True

#将页面源码转码成中文，加ignore避免无法识别的生僻字报错
driver.page_source.encode("gbk","ignore")

#将页面源码转成html文件
html=driver.page_source.encode("gbk","ignore")

#获取当前页面的url u'http://www.iciba.com/
driver.current_url